From 8f950825177407115cf3e7ba177ba21a3b667655 Mon Sep 17 00:00:00 2001 From: Robert Lipe Date: Fri, 6 Jul 2018 23:51:44 -0500 Subject: [PATCH] Remove more C casts Remove some senseless casts to ints, explicitly avoid const-ified queue iterators. --- igc.cc | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/igc.cc b/igc.cc index 2116ac4f3..b0e3df738 100644 --- a/igc.cc +++ b/igc.cc @@ -891,17 +891,25 @@ static void wr_track() printf(MYNAME ": adjusting time by %ds\n", time_adj); } // Iterate through waypoints in both tracks simultaneously - QUEUE_FOR_EACH(&gnss_track->waypoint_list, elem, tmp) { + queue* melem; + queue* mtmp; + QUEUE_FOR_EACH(&gnss_track->waypoint_list, melem, mtmp) { // FIXME(NEW_Q): the excessive casting of the iterators is gross. Rethink. - double pres_alt = interpolate_alt(pres_track, ((Waypoint*) elem)->GetCreationTime().toTime_t() + time_adj); - wr_fix_record(((Waypoint*) elem), (int) pres_alt, (int) ((Waypoint*)elem)->altitude); + void* vwaypointp = static_cast(melem); + Waypoint* wpt = static_cast(vwaypointp); + double pres_alt = interpolate_alt(pres_track, wpt->GetCreationTime().toTime_t() + time_adj); + wr_fix_record(wpt, pres_alt, wpt->altitude); } } else { if (pres_track) { // Only the pressure altitude track was found so generate fix // records from it alone. - QUEUE_FOR_EACH(&pres_track->waypoint_list, elem, tmp) { - wr_fix_record((Waypoint*) elem, (int)((Waypoint*) elem)->altitude, (int) unknown_alt); + queue* melem; + queue* mtmp; + QUEUE_FOR_EACH(&pres_track->waypoint_list, melem, mtmp) { + void* vwaypointp = static_cast(melem); + Waypoint* wpt = static_cast(vwaypointp); + wr_fix_record(wpt, wpt->altitude, unknown_alt); } } else if (gnss_track) { // Only the GNSS altitude track was found so generate fix -- 2.30.2